LSI Logic Storage Systems, Inc.
Firmware Release Notes
Version 9.40-00
July 28, 2003

IMPORTANT - READ CAREFULLY BEFORE INSTALLING THIS PACKAGE

This End-User License Agreement ("Agreement") is a legal 
agreement between you and LSI Logic. By opening this package or 
otherwise using the software, firmware and/or documentation 
("Software") you agree to be bound by the terms of this 
Agreement. If you do not agree with the terms of this Agreement, 
immediately return this package to LSI Logic Storage Systems, 
Inc., 3718 N. Rock Road, Wichita, KS 67226.
Attention: Director, Product Marketing.

This Software is licensed to you; it is not sold to you. LSI 
Logic grants to you a non-exclusive, non-transferable and 
revocable license to use the Software solely for use with the 
hardware system with which it was shipped. You may not loan, 
rent, lease, distribute, market, sublicense or otherwise 
transfer the Software. You may not reverse engineer, decompile 
or disassemble any portion of the Software. 

The Software is protected by United States copyright laws and 
international treaty provisions as well as other intellectual 
property laws and treaties. You may not alter or remove
any copyright notices which LSI Logic has caused to appear in or 
on the Software.

Any use by you of the Software is at your own risk. The Software 
is provided for use only with LSI Logic RAID devices.

The Software is provided "AS IS" without warranty of any kind. 
LSI LOGIC DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, 
INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-
INFRINGEMENT OF THIRD PARTY RIGHTS.

IN NO EVENT SHALL LSI LOGIC BE LIABLE FOR ANY SPECIAL, 
INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, 
BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER 
PECUNIARY LOSS) ARISING OUT OF THE USE OR INABILITY TO USE THE 
SOFTWARE, EVEN IF LSI LOGIC HAS BEEN ADVISED OF THE POSSIBILITY 
OF SUCH DAMAGES.

The Software is provided with RESTRICTED RIGHTS. Use, 
duplication, or disclosure by the Government is subject to 
restrictions as set forth in subparagraph (c) (1) (ii) of The 
Rights in Technical Data and Computer Software clause at DFARS 
252.227-7013 or subparagraphs (c) (1) and (2) of the Commercial 
Computer Software - Restricted Rights at 48 CFR 52.227 19, as 
applicable. Licensor is LSI Logic Storage Systems, Inc., 
Wichita, Kansas 67226.

This Agreement is governed by the laws of the State of 
California.

Should you have any questions concerning this document, or if 
you would like a production license agreement, please contact 
your local authorized LSI Logic Sales Representative or an LSI 
Logic sales office.


Contents
========
Section 1. General Description
Section 2. New Features
Section 3. Defect Reporting
========

Section 1. General Description
==============================
This document describes the firmware features and fixes for the 
LSI Logic disk array controllers.

NOTE: Rolling upgrade is disabled with this release. Please use 
eAD 2.1 or the SUP 2.15 tool to do a controller firmware upgrade. 
These tools will use the standard firmware upgrade process. Use 
of eAD 2.0 will result in a failed upgrade and unchanged 
firmware in the controller.

Section 2. New Features
==============================================
This FW for the FFx/FFx2 controller includes all of the features 
of the prior releases plus the new features and fixes described 
below.

2.1.	Version 9.00 New Features
================================
1. Rolling Upgrade
This Feature is disabled in this build.

This feature allows the RAID controller firmware to be updated 
while at least one of the controllers remains active and 
functional. Active and functional means that the servicing host 
I/O requests will continue throughout the entire firmware 
upgrade process. Performance will be degraded during the 
firmware upgrade process.

2. Improved Drive Error Handling
Improved Drive Error Handling includes the following new or 
improved drive error handling features:
   a.) Reassign Sectors - changes the disk error recovery 
algorithm regarding 	 reassign sectors when a disk drive 
returns sense data indicating that a 	 media error has 
occurred.
   b.) SMART - the drive's capability to predict an imminent 
drive failure 	 (Self-Monitoring, Analysis, and Reporting 
Technology (S.M.A.R.T. 6)) has	 been implemented.
   c.) Data Availability Framework -  This design improves the 
way LSI Logic 	 exPro RAID controllers determine drive failure 
and provides the user with	 a tool to retrieve as much data 
as possible when a second drive fails. 

3. Programmable Activation of Conservative CacheThis feature 
allows the enabling/disabling of conservative cache through a 
new FSI command. 
	
4. Multiple Configuration Tool Locking
This feature makes sure that only one configuration manager at a 
time has access to the RAID controller(s).  This feature 
provides protection against simultaneous configurator access; it 
does not prevent someone sitting at terminal B from 
reconfiguring what someone sitting at terminal A just 
configured.

5. Multiple COD (Configuration on Disk) Groups
This feature allows the controller to support more than one COD 
group. That is, where an array is divided into more than one 
group of drives, the controller will support individual 
configuration definitions for each group. The firmware will 
continue to support the ability to add individual drives and 
drive shelves to the system while the controllers are 
operational. 

6. Phase 3 BBU Enhancements
This feature will determine whether a battery is "good" or "bad" 
based on a quick discharge/charge test. This feature is not used 
with an FFx Rev 1 BBU.

7. WWN Addressing for Disk Drives
This feature uses the WWN of every backend Fibre channel device 
to determine how to address the device, instead of relying only 
upon the loopId. This allows a backend Fibre channel device to 
dynamically change loopIds without loss of data availability or 
data integrity. This feature does not imply that "soft 
addressing" of backend devices is supported, as SES limitations 
preclude the use of soft addresses for disk drives.

Note:  SES behavior for control of disk drive LEDs, bypass 
circuits, etc. is undefined if any backend device acquires a 
soft loopId or has acquired different loopIds on each port. 
Support for non-redundant "single-ported" configurations where a 
different disk drive exists at each loopId on each disk loop has 
been discontinued.

8. Loop Mending (Single Loop)
The Loop Mending feature provides a means to detect, isolate, 
and "mend" a single Fibre Channel loop failure with minimum 
performance degradation and without host interruption.  

9. SES Watchdog and Enclosure Discovery Support for Cabo/Bonaire 
XK ESI watchdog timer and general SES and enclosure discovery 
code enhancements.

10. Disk Scrubbing
The Disk Scrubbing feature will read user data on all configured 
drives in the system. It will be invoked by user request or 
automatically according to a set of configured parameters. Data 
Scrubbing requires that the data be verified (SCSI read/verify 
command) from all data areas of the disk without error. It is 
not necessary to transfer the data to the controller, or to 
check the parity against data. If an error is found, the rest of 
the RAID array should be used to rewrite the information, 
possibly after reassignment of the disk sector(s). All 
configured drives must be scrubbed within a configurable 
interval.  This feature will consume no more than fifteen 
percent of the available system resources at any one time.

11. Out-of-Band Configuration (FSI over IP)
The Out-Of-Band (FSI over IP) feature supports the use of an 
Ethernet interface with the host to receive FSI communications. 
The advantage of this implementation is its "Out-of-band" 
nature; with FSI communications routed to the Ethernet 
connection, FC bandwidth is not compromised. This feature will 
include an IP security feature. This feature is not supported on 
FFx. 

12. FSI Component Commands
The FSI Component Commands are being implemented to support the 
BBU and Ethernet features. These component commands are unique 
in that they will leverage Emulated Shared Memory (ESM) and 
allow communications with either controller (in duplex scenario) 
through the other controller. Prior to this implementation 
controllers required direct communication. Note: For full 
information on these and other features of this release, please 
refer to the "RAID and Storage Product Fundamentals and 
Features, Firmware Version 3.2 to 9.00".



Version 9.02 new features/fixes:
================================
(6223) A repair for defect 6145 (Data miscompare running power 
cycle MORE10) introduced a more serious error in defect 6223 
(Data miscompare running MORE enlarge operation).  Version 9.02 
backs out the repair of 6145.


Version 9.40 new features/fixes:
================================
(4851) PCR1147 HOST fibre cable pull has no JAC Event. Added 
events #98 MLXEV_HOST_FIBRE_DOWN and #99 MLXEV_HOST_FIBRE_UP

(5115) Support "Tivoli Ready for SAN Management" Certification. 
In order to allow controllers to be discovered and better 
managed from SAN management applications such as Tivoli SAN 
Manager, Vixel InSite, etc., support will be added for fibre 
channel management infrastructure.  This will give SAN 
management applications the ability to discover Mylex RAID 
controllers, display meaningful information about them and 
launch a management application, eAD for example, for the RAID 
controller without requiring any LSI specific information.  It 
should be noted, however, that the FC-GS-4 proposal has been 
updated as of January 2002 to include additional information, 
the attached specification will be updated accordingly with 
input from the Tivoli SAN management team on their plans to 
utilize this new information.

(5557) PCR1154,1157 Replace "Parity Error" event for fibre 
channel. Fibre-channel specific replacement for 
MLXEV_PHYSDEV_PARITY_ERROR (event 22). The existing event is 
documented in the FSI spec and applies to SCSI-bus parity 
errors. Fibre-channel CRC errors should be reported with a 
separate event with its own description, cause, action, and 
severity.

(5565) Seagate Disk Fault Injection: Write Gate tied to Ground. 
Added code to replace Write(10) CDBs with Write And Verify CDBs 
on every 1000th write or every hour so that the drive will be 
able to detect that it didn't actually write anything to the 
media. This won't prevent data corruption in most cases, but at 
least we kill the bad drive.

(5566) Seagate Disk Fault Injection: Read Gate tied to Ground. 
If the read gate is tied to ground (shorted) the drive returns 
media error for all reads.  Added an algorithm to track the read 
success rate of a disk drive after encountering a media error.

(5624) FW fails to rescan an ESI drive. The primary SES drive 
was pulled and in GAM, the enclosure access display would say 
'critical.' This critical value would never go away, until the 
new SES drive was pulled.

(5858) Intermittent disk channel failure causes dual controller 
abort. There was a issue with both controllers sending kill 
partner commands at nearly the same time.  Now a controller will 
ignore the command if it has sent a kill message to its partner.

(5925) User has no idea LD is initialized after MORE disrupts 
BGI. If BGI is running and gets interrupted by MORE, then no 
events are generated to say the interrupted BGI LUN, and the new 
LUNS never get initialized. Added the Initialized event to MORE.

(6088) data miscompare on write hole test 
The fix is to guarantee that if the drive is rebuilding and we
are  updating parity, then the copy cache MUST have a copy of the data for the
offline disk.

(6186) Request: Events for PFA polling start / stop. #101 - 
MLXEV_SYSDEV_PFA_START - generated every time a PFA loop starts 
throughout the system. #102 - MLXEV_SYSDEV_PFA_START - will be 
sent once the controllers have looped over every drive in the 
system.

(6187) Request: Events needed for Disk Scrubbing stop / start. 
#103 - MLXEV_SYSDEV_BKGND_PATROL_START - indicates a new drive 
is being analyzed or a patrol has resumed.
#104 - MLXEV_SYSDEV_BKGND_PATROL_STOP - sent once the patrol has 
been commanded to stop or a patrol loop has completed on all 
disk drives.

(6195) Failback controller stuck in MSflsh. This is a problem 
with the ISP firmware Version 30.01.22efm. This problem only 
occurs when connected to a switch or an HBA in point to point 
mode only.  The ISP firmware is clobbering an internal register 
when the handling a NOS ELS and upon return from subroutine, the 
caller does not have the original register contents expected.

(6236) Selectable conservative cache checking. 
A customer has requested that the controller allow the user to select which
activities force conservative cache. A new version of DEVZAP 4.16 is required to 
make these changes.

(6272) Reject SES Thresh Out w/DC PSU. DC power supply temp 
thresholds are not adjustable.  If using DC power supplies a 
FSI_SetEnvParm cmd that attempts to set the temperature 
thresholds will be rejected with 09/81/04 sense.

(6282) No event for channel recovery. A new event, 100 - 
MLXEV_PHYSDEV_REDUNDANT_ACCESS_RESTORED, that will be generated 
when the channel comes back up for each drive that previously 
reported losing redundant access.

(6287) Setting the temperature threshold returns but does not 
update the values in the enclosure. When setting up the 
background process to monitor the SES for new temperature 
threshold values, the wrong index into the SES Enclosure 
structure array was chosen.

(6356) SES Disable CC doesn't work
Upon usage of the conservative cache selection option with -cs 0x10 defined
the FW is not printing out a message in the boot banner and the conservative
cache debug menu.  The print function for the -cs option was not screening the 
fwheader correctly to check for the upper byte of the fwvarsPtr->cacheSelect 
options.

(6362) (CL #6350) FW 8.30 failed one of the SANMark tests in the 
SCD2003 suite: TX_RF_ID_POWER_ON. Added support for the Register 
FC Features (RFF_ID) command.

(6464) (RW #6335) GetControllerInfo doesn't appear to supply MAC 
address of either controller. Bytes 580-595 should contain the 
True Node Name(ie, the MAC address) for each controller. The 
values returned were all 0s.

(6467) Reassigns fail during BGP. BGP found a media error, kicked off a 
reassign, and then failed the physical disk anyway. The algorithm was modified 
to not include the initial media error in the analysis for.

(6483) Debug window update of info for e.8.1 is not accurate in real time it 
needed a controller reset to display recently changed values.
Modified the function that displays this info to use config2 instead of the
global structure so that data will display changes in real time.

(6489) (CL #6327) Xyratex requests details & change to the Drive 
Sizing Algorithm. 146GB loosing 5% of the drive's capacity with 
standard scaling. The solution is to provide a second alternate 
drive size table and use the same scaling range used for the 
current 70+G drives.  By doing this the loss of usable space is 
reduced from 5% to under 1%. A FW header bit must change to take 
advantage of the second sizing table

(6546) Plugfest Interoperability enhancements/bugs. SanMark 
certification tests (SCD4001 test for RPS, RNID and RPL 
commands) changes to make us more compatible with the 
switches/HBA's

(6555) Controller generates event called "eventcode" for SES 
events. The argument to a function call being treated as an int, 
when a string was expected.

(6596) Pulling Fibre on a Penguin Linux system cable causes abort
The Virtual Port map was not filled out before a host command was sent. Using 
the queue that handles the case when the host was mapped and add a remapping of 
the Target Id the command was sent to if we were not completely ready to accept 
a command.

(6614) (CL #6495) Hard drive hangs controller when power is cut 
momentarily by an ADTX switch.. A mechanism was put into the FW 
that allows a drive to issue sense code 2/4/1 for a few seconds 
without killing it (to allow certain vendor drives a few seconds 
to spin up). The problem was that the FW never killed the drive.

(6647) Bgi fails to start after deleteing several luns. BGI runs 
when kicked off from the from first host write. But when it
encounters a deleted LUN, the performBGInit function correctly 
detects this, but the looping code (which loops through all 
system drives), just quit.

(6735, 6812) Controller hang during FO/FB testing printing endless FAC messages 
in the debug window. Added a flag to the mirrorOperation structure that 
indicates whether the CLD got the MirrorOpEntry on this invocation of irrorSend, 
or the CLD already had the mirrorOpEntry.  If the CLD did not have a 
mirrorOpEntry, then there can be no mirror operation in progress using the 
mirrorEntry and so the mirror operation may be started immediately and not 
placed on the Wait queue.

(6789) Confusing conservative cache data returned in getControllerInfo.  
Firmware and DEVzap were changed to allow a customer to ignore certain failures 
and remain in write back cache.  The FSI command values were not changed to 
address this behavior. The code that returns the cache data now looks to see if 
we should enable write back before returning any values that would be confusing 
to a customer.  

(6832) Endless FAC message from survivor during fofbsoakwba.mts.  The problem is 
that the processor's data cache is not being flushed to external memory as it 
should. Added a call to flush the processor's data cache before flushing our own 
mirror cache.

(6843) During a Rolling Upgrade data corruptions were found.  The problem came 
from mapping IO incorrectly because the TID was not set up when the command 
arrived.  The code was changed to wait until the host and TID were mapped 
correctly when handling commands that came in and were queued when we were not 
ready to process them immediately. 
In addition, during a Rolling Upgrade on Win 2k data corruption pop ups can 
occur saying possible data was lost.  Also Win 2k has pop-ups complaining about 
unsafe device removal. This code is being changed to neuter Rolling Upgrade.  
The end result of a Rolling Upgrade command will be with both controllers having 
the original code still in place.  A change is also being made to hard code the 
version level returned for an Inquiry command so that the plug-and play manager 
will not see the upgraded controller FW as a new device. This will help allow 
this feature to possibly be enabled in the future.


Known Limitations
============================

(5510) Eliminate FSI Prepare Drive For Removal limitations. The 
known limitations are: 1) must be a "connected" drive, 2) must 
not be an "online" or "rebuilding" drive, 3) SES monitoring must 
be running, 4) command must be sent to controller 0, 5) must not 
have "soft addressing" on any drive.

(5989) WWN table deletion not functioning as expected. The 
deletion of the HBA WWN did not suceed using Brocade 3800 switch 
with FW v3.0.2g.  Fixed in v3.0.2j.

(6027) Bad disk causes LIP every 20 seconds until disk is 
removed.  A disk went bad and was taken offline for reason 47.  
The firmware issues inquire commands to the drive but the disk 
does not respond and the command times out. On the third try of 
the inq command to the disk the disk ISP logs out the disk and 
the loop gets a LIP. This command timeout, device logout, and 
channel lip does not end.

(6376) Pulled and re-inserted drives take a long time to 
reappear in eAD. Scenario: Pull drives out and register that 
they are no longer present in eAD  Re-insert drives and notice 
that they do not all reappear.  It will  take up to 15 minutes 
for them to come back.

(6400) FGI duration up to 73h on FFx2 controller with 146G HDD. 
FGI is a slow process which is exaggerated by large capacity 
HDDs.

(6487) Array with Cheetah 7 drives report Physical disk found on 
only one disk channel on boot up. The problem is exhibited only 
with MS04 drive FW installed

(6554) Autoreboot switch-on-the-fly requires reboot. Ironically, 
changing the autoreboot setting requires a reboot.

(6579) Rolling Upgrade fails on 128KB cache both SCSI and ISCSI 
file transfer. With a small (128M) cache and heavy IO rolling 
upgrade may fail to perform because it cannot obtain enough 
cache to run.  The solution is to slow or quiesce IO, or just 
retry the operation.

(6617) GetHealthStatus does not report that a debug dump is 
available, byte 47, bit 0. Debug Dump is a developer tool. Also 
reported in #6682.

(6688) MORE causes data corruption when crossing the 2TB 
boundary. Configurator must not allow 2TB LUN creation.  When 
this is attempted using JAC the LUN is limited to 2TB.

(6690) Locate lights don't blink through GUI. The lights come on 
and stay on instead of blinking for some combinations of FW/SW.  
This combo works properly: FW 9.02, EAD 2.00.05, ESI 3.10, SUP 
2.03.

(6707) When attempting to perform a failback survivor aborts 
with busy IOP. This problem happens when there are more than one 
JAC servers talking to an array. Running multiple JAC 
server/iSCSI sessions is not supported.

(6743) Controller aborted on bootup With FW header misc field 
set to 0x800, no unmapped host ports feature.. 0x800 means 'no 
unmapped host ports' feature enabled.  Do not use this feature.

(6744) Config BGI bit doesn't match BGI in controller params. 
Scenario: load config, overlay another, another, another, delete 
8 LUNs, start IO - No BGI.  Reset controllers - BGI starts.

(6746) Serious (Level 4) Event occurs when you add an enclosure 
with ID lower than RAID enclosure. The event (332 
MLXEV_ENCLACCESS_OFFLINE) should not occur, but has no effect on 
system operation.

(6751) SCSI inquiry command requesting 7 or less bytes of 
information it returns the incorrect additional length. Sending 
the SCSI inq command requesting 7 or less bytes of information 
it returns the incorrect additional length of 8. 

(6830) Data corruption during Rolling upgrade.  WIndows 2000 Plug 
and play manager unplugs devices during rolling upgrade causing 
possible data loss. This feature has been disabled 
for this release. Please use eAD 2.1 or the SUP 2.15 tool to perform a 
firmware upgrade.


Section 3. Defect Reporting
==============================================
All defect reports should be sent to LSI Logic Storage Systems: 

Website: http://lsilogicstorage.com/support 
Telephone: 1-800-499-8774 
Email: ProFibre_support@lsilogicstorage.com 

THIS FIRMWARE AND THE INFORMATION CONTAINED IN THIS PUBLICATION 
IS SUBJECT TO CHANGE WITHOUT NOTICE AND DOES NOT REPRESENT A 
COMMITMENT ON THE PART OF LSI LOGIC.

Although reasonable efforts have been made to assure the 
accuracy of the information contained herein, this publication 
could include technical inaccuracies or typographical errors.

